Skip to content

Ansible Semaphore als Docker installieren

Zuerst erstellen wir ein Verzeichnis, wo wir dann Zugriff auf die Playbooks haben.

sudo mkdir -p /opt/semaphore/playbook

Dann setzen wir auf das Verzeichnis /opt/semaphore/playbook noch Berechtigungen, da im Container der Benutzer semaphor mit der UID 1001 darauf zugreifen muss.

sudo chown -R 1001 /opt/semaphore/playbook

Nun erstellen wir uns eine docker-compose.yml Datei.

version: '3.3'

services:
  mysql:
    image: mariadb:10
    container_name: mysql
    hostname: ${SEMAPHORE_DB_HOST}
    environment:
      MYSQL_RANDOM_ROOT_PASSWORD: '${MYSQL_RANDOM_ROOT_PASSWORD}'
      MYSQL_DATABASE: ${SEMAPHORE_DB}
      MYSQL_USER: ${SEMAPHORE_DB_USER}
      MYSQL_PASSWORD: ${SEMAPHORE_DB_PASS}

  semaphore:
    env_file:
      - .env
    image: ansiblesemaphore/semaphore
    container_name: semaphore
    hostname: semaphore
    environment:
      SEMAPHORE_DB_USER: ${SEMAPHORE_DB_USER}
      SEMAPHORE_DB_PASS: ${SEMAPHORE_DB_PASS}
      SEMAPHORE_DB_HOST: ${SEMAPHORE_DB_HOST}
      SEMAPHORE_DB_PORT: ${SEMAPHORE_DB_PORT}
      SEMAPHORE_DB: ${SEMAPHORE_DB}
      SEMAPHORE_PLAYBOOK_PATH: ${SEMAPHORE_PLAYBOOK_PATH}
      SEMAPHORE_ADMIN_PASSWORD: "${SEMAPHORE_ADMIN_PASSWORD}"
      SEMAPHORE_ADMIN_NAME: "${SEMAPHORE_ADMIN_NAME}"
      SEMAPHORE_ADMIN_EMAIL: ${SEMAPHORE_ADMIN_EMAIL}
      SEMAPHORE_ADMIN: ${SEMAPHORE_ADMIN}
      SEMAPHORE_WEB_ROOT: ${SEMAPHORE_WEB_ROOT}
    ports:
      - "${HOST_IPADDR}${HOST_PORT}:3000"
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - './playbook:${SEMAPHORE_PLAYBOOK_PATH}'
    depends_on:
      - mysql

Als nächstes erstellen wir noch die .env Datei.

MYSQL_RANDOM_ROOT_PASSWORD=yes
SEMAPHORE_DB_USER=semaphore
SEMAPHORE_DB_PASS=Bubu1234
SEMAPHORE_DB_HOST=mysql
SEMAPHORE_DB_PORT=3306
SEMAPHORE_DB=semaphore
SEMAPHORE_PLAYBOOK_PATH=/etc/semaphore
SEMAPHORE_ADMIN_PASSWORD=Test1234
SEMAPHORE_ADMIN_NAME=Administrator
SEMAPHORE_ADMIN_EMAIL=root@localhost
SEMAPHORE_ADMIN=admin
SEMAPHORE_WEB_ROOT=http://127.0.0.1:3000
HOST_IPADDR=
HOST_PORT=3000

Nun starten wir den Docker Container mit docker-compose.

sudo docker compose up -d